package com.sys.ai.service;

import com.sys.ai.fo.SendMessageFO;
import com.sys.ai.vo.EmbeddingsVO;
import com.sys.ai.vo.ReRankVO;
import reactor.core.publisher.Flux;

import java.util.List;

public interface AiService {

    /**
     * 发送消息 stream流式
     *
     * @param sendMessageFO 入参
     * @return
     */
    void sendStreamMessage(SendMessageFO sendMessageFO);

    /**
     * 将Q&A转成向量
     *
     * @param text 文本内容
     * @return
     */
    EmbeddingsVO generateQAToEmbeddings(String text, String modelId);

    /**
     * 重新排序
     *
     * @param documents     目标文本
     * @param queryText     查询文本
     * @param reRankModelId 重新排序模型id
     * @return
     */
    ReRankVO textToReRank(List<String> documents, String queryText, String reRankModelId);
}
